import { defineStore } from 'pinia';

// 定义遗迹游戏状态store
export const useRuinsStore = defineStore('ruins', {
  state: () => ({
    // 游戏资源状态
    funds: 0,
    food: 0,
    artifact: 0,
    
    // 日志
    logs: ['欢迎来到古代遗迹区域！在这里，你可以探索和挖掘文物。'],
    
    // UI状态
    transitionActive: false
  }),

  getters: {
    /**
     * 获取所有资源
     * @returns {Object} 包含所有资源的对象
     */
    resources(state) {
      return {
        funds: state.funds,
        food: state.food,
        artifact: state.artifact
      };
    },
    
    /**
     * 获取日志
     * @returns {Array} 日志数组
     */
    getLogs(state) {
      return state.logs;
    }
  },

  actions: {
    /**
     * 初始化游戏状态
     * @param {Object} initialState - 初始状态对象
     */
    initialize(initialState) {
      this.funds = initialState.funds || 0;
      this.food = initialState.food || 0;
      this.artifact = initialState.artifact || 0;
    },
    
    /**
     * 添加日志条目
     * @param {string} text - 日志文本
     */
    addLogEntry(text) {
      this.logs.push(`> ${text}`);
    },
    
    /**
     * 设置UI过渡状态
     * @param {boolean} active - 是否激活过渡
     */
    setTransitionActive(active) {
      this.transitionActive = active;
    },
    
    /**
     * 执行探索行动
     * @returns {Object} 行动结果
     */
    performExplore() {
      if (this.food >= 100) {
        this.food -= 100;
        const foundArtifact = Math.random() > 0.5 ? 1 : 0;
        if (foundArtifact) {
          this.artifact += 1;
          this.addLogEntry('探索成功！你发现了一个文物！');
        } else {
          this.addLogEntry('探索结束，没有发现文物。');
        }
        return { success: true, foundArtifact };
      } else {
        this.addLogEntry('粮食不足，无法探索！');
        return { success: false, reason: '粮食不足' };
      }
    },
    
    /**
     * 执行挖掘行动
     * @returns {Object} 行动结果
     */
    performDig() {
      if (this.funds >= 200) {
        this.funds -= 200;
        const foundArtifact = Math.random() > 0.3 ? 1 : 0;
        if (foundArtifact) {
          this.artifact += 1;
          this.addLogEntry('挖掘成功！你获得了一个文物！');
        } else {
          this.addLogEntry('挖掘结束，没有发现文物。');
        }
        return { success: true, foundArtifact };
      } else {
        this.addLogEntry('资金不足，无法挖掘！');
        return { success: false, reason: '资金不足' };
      }
    },
    
    /**
     * 修复遗迹
     * @returns {Object} 修复结果
     */
    repairRuins() {
      if (this.artifact >= 5) {
        this.addLogEntry('你使用了5个文物修复了遗迹，获得了古代知识！');
        this.artifact -= 5;
        this.addLogEntry('资金增加了500！');
        this.funds += 500;
        return { success: true };
      } else {
        this.addLogEntry('需要5个文物才能修复遗迹。');
        return { success: false, reason: '文物不足' };
      }
    }
  }
});